(module binary
  "\00\61\73\6d\01\00\00\00\01\98\80\80\80\00\05\60"
  "\00\00\60\03\7f\7f\7f\01\7f\60\00\01\7f\60\01\7f"
  "\00\60\01\7f\01\7f\03\b2\80\80\80\00\31\00\01\02"
  "\02\02\02\03\03\04\04\04\04\02\02\02\02\02\02\02"
  "\02\03\03\03\04\04\04\04\04\04\04\04\04\04\01\01"
  "\01\01\04\04\04\04\04\04\04\04\04\04\04\04\05\83"
  "\80\80\80\00\01\00\01\07\d1\86\80\80\00\2f\0d\61"
  "\73\2d\66\75\6e\63\2d\66\69\72\73\74\00\02\0b\61"
  "\73\2d\66\75\6e\63\2d\6d\69\64\00\03\0c\61\73\2d"
  "\66\75\6e\63\2d\6c\61\73\74\00\04\12\61\73\2d\66"
  "\75\6e\63\2d\65\76\65\72\79\77\68\65\72\65\00\05"
  "\0c\61\73\2d\64\72\6f\70\2d\6c\61\73\74\00\06\12"
  "\61\73\2d\64\72\6f\70\2d\65\76\65\72\79\77\68\65"
  "\72\65\00\07\0e\61\73\2d\73\65\6c\65\63\74\2d\6d"
  "\69\64\31\00\08\0e\61\73\2d\73\65\6c\65\63\74\2d"
  "\6d\69\64\32\00\09\0e\61\73\2d\73\65\6c\65\63\74"
  "\2d\6c\61\73\74\00\0a\14\61\73\2d\73\65\6c\65\63"
  "\74\2d\65\76\65\72\79\77\68\65\72\65\00\0b\0e\61"
  "\73\2d\62\6c\6f\63\6b\2d\66\69\72\73\74\00\0c\0c"
  "\61\73\2d\62\6c\6f\63\6b\2d\6d\69\64\00\0d\0d\61"
  "\73\2d\62\6c\6f\63\6b\2d\6c\61\73\74\00\0e\13\61"
  "\73\2d\62\6c\6f\63\6b\2d\65\76\65\72\79\77\68\65"
  "\72\65\00\0f\0d\61\73\2d\6c\6f\6f\70\2d\66\69\72"
  "\73\74\00\10\0b\61\73\2d\6c\6f\6f\70\2d\6d\69\64"
  "\00\11\0c\61\73\2d\6c\6f\6f\70\2d\6c\61\73\74\00"
  "\12\12\61\73\2d\6c\6f\6f\70\2d\65\76\65\72\79\77"
  "\68\65\72\65\00\13\0f\61\73\2d\69\66\2d\63\6f\6e"
  "\64\69\74\69\6f\6e\00\14\0a\61\73\2d\69\66\2d\74"
  "\68\65\6e\00\15\0a\61\73\2d\69\66\2d\65\6c\73\65"
  "\00\16\0a\61\73\2d\62\72\2d\6c\61\73\74\00\17\10"
  "\61\73\2d\62\72\2d\65\76\65\72\79\77\68\65\72\65"
  "\00\18\0c\61\73\2d\62\72\5f\69\66\2d\6d\69\64\00"
  "\19\0d\61\73\2d\62\72\5f\69\66\2d\6c\61\73\74\00"
  "\1a\13\61\73\2d\62\72\5f\69\66\2d\65\76\65\72\79"
  "\77\68\65\72\65\00\1b\0f\61\73\2d\62\72\5f\74\61"
  "\62\6c\65\2d\6d\69\64\00\1c\10\61\73\2d\62\72\5f"
  "\74\61\62\6c\65\2d\6c\61\73\74\00\1d\16\61\73\2d"
  "\62\72\5f\74\61\62\6c\65\2d\65\76\65\72\79\77\68"
  "\65\72\65\00\1e\0e\61\73\2d\72\65\74\75\72\6e\2d"
  "\6c\61\73\74\00\1f\14\61\73\2d\72\65\74\75\72\6e"
  "\2d\65\76\65\72\79\77\68\65\72\65\00\20\0c\61\73"
  "\2d\63\61\6c\6c\2d\6d\69\64\31\00\21\0c\61\73\2d"
  "\63\61\6c\6c\2d\6d\69\64\32\00\22\0c\61\73\2d\63"
  "\61\6c\6c\2d\6c\61\73\74\00\23\12\61\73\2d\63\61"
  "\6c\6c\2d\65\76\65\72\79\77\68\65\72\65\00\24\0d"
  "\61\73\2d\75\6e\61\72\79\2d\6c\61\73\74\00\25\13"
  "\61\73\2d\75\6e\61\72\79\2d\65\76\65\72\79\77\68"
  "\65\72\65\00\26\0d\61\73\2d\62\69\6e\61\72\79\2d"
  "\6d\69\64\00\27\0e\61\73\2d\62\69\6e\61\72\79\2d"
  "\6c\61\73\74\00\28\14\61\73\2d\62\69\6e\61\72\79"
  "\2d\65\76\65\72\79\77\68\65\72\65\00\29\0c\61\73"
  "\2d\74\65\73\74\2d\6c\61\73\74\00\2a\12\61\73\2d"
  "\74\65\73\74\2d\65\76\65\72\79\77\68\65\72\65\00"
  "\2b\0e\61\73\2d\63\6f\6d\70\61\72\65\2d\6d\69\64"
  "\00\2c\0f\61\73\2d\63\6f\6d\70\61\72\65\2d\6c\61"
  "\73\74\00\2d\15\61\73\2d\63\6f\6d\70\61\72\65\2d"
  "\65\76\65\72\79\77\68\65\72\65\00\2e\13\61\73\2d"
  "\67\72\6f\77\5f\6d\65\6d\6f\72\79\2d\6c\61\73\74"
  "\00\2f\19\61\73\2d\67\72\6f\77\5f\6d\65\6d\6f\72"
  "\79\2d\65\76\65\72\79\77\68\65\72\65\00\30\0a\ea"
  "\85\80\80\00\31\82\80\80\80\00\00\0b\8a\80\80\80"
  "\00\00\20\00\20\01\20\02\6b\6a\0b\85\80\80\80\00"
  "\00\01\41\01\0b\87\80\80\80\00\00\10\00\01\41\02"
  "\0b\87\80\80\80\00\00\10\00\41\03\01\0b\8b\80\80"
  "\80\00\00\01\01\10\00\01\41\04\01\01\0b\86\80\80"
  "\80\00\00\20\00\01\1a\0b\89\80\80\80\00\00\01\01"
  "\20\00\01\01\1a\0b\8a\80\80\80\00\00\20\00\01\20"
  "\00\20\00\1b\0b\8a\80\80\80\00\00\20\00\20\00\01"
  "\20\00\1b\0b\8a\80\80\80\00\00\20\00\20\00\20\00"
  "\01\1b\0b\90\80\80\80\00\00\01\20\00\01\01\20\00"
  "\01\01\20\00\01\01\1b\0b\88\80\80\80\00\00\02\7f"
  "\01\41\02\0b\0b\8a\80\80\80\00\00\02\7f\10\00\01"
  "\41\02\0b\0b\8b\80\80\80\00\00\02\7f\01\10\00\41"
  "\03\01\0b\0b\8e\80\80\80\00\00\02\7f\01\01\10\00"
  "\01\41\04\01\01\0b\0b\88\80\80\80\00\00\03\7f\01"
  "\41\02\0b\0b\8a\80\80\80\00\00\03\7f\10\00\01\41"
  "\02\0b\0b\8a\80\80\80\00\00\03\7f\10\00\41\03\01"
  "\0b\0b\8e\80\80\80\00\00\03\7f\01\01\10\00\01\41"
  "\04\01\01\0b\0b\8a\80\80\80\00\00\20\00\01\04\40"
  "\10\00\0b\0b\8b\80\80\80\00\00\20\00\04\40\01\05"
  "\10\00\0b\0b\8b\80\80\80\00\00\20\00\04\40\10\00"
  "\05\01\0b\0b\8a\80\80\80\00\00\02\7f\20\00\01\0c"
  "\00\0b\0b\8d\80\80\80\00\00\02\7f\01\01\20\00\01"
  "\01\0c\00\0b\0b\8c\80\80\80\00\00\02\7f\20\00\01"
  "\20\00\0d\00\0b\0b\8c\80\80\80\00\00\02\7f\20\00"
  "\20\00\01\0d\00\0b\0b\91\80\80\80\00\00\02\7f\01"
  "\01\20\00\01\01\20\00\01\01\0d\00\0b\0b\8e\80\80"
  "\80\00\00\02\7f\20\00\01\20\00\0e\01\00\00\0b\0b"
  "\8e\80\80\80\00\00\02\7f\20\00\20\00\01\0e\01\00"
  "\00\0b\0b\93\80\80\80\00\00\02\7f\01\01\20\00\01"
  "\01\20\00\01\01\0e\01\00\00\0b\0b\86\80\80\80\00"
  "\00\20\00\01\0f\0b\89\80\80\80\00\00\01\01\20\00"
  "\01\01\0f\0b\8b\80\80\80\00\00\20\00\01\20\01\20"
  "\02\10\01\0b\8b\80\80\80\00\00\20\00\20\01\01\20"
  "\02\10\01\0b\8b\80\80\80\00\00\20\00\20\01\20\02"
  "\01\10\01\0b\92\80\80\80\00\00\01\01\20\00\01\01"
  "\20\01\01\01\20\02\01\01\10\01\0b\86\80\80\80\00"
  "\00\20\00\01\68\0b\89\80\80\80\00\00\01\01\20\00"
  "\01\01\68\0b\88\80\80\80\00\00\20\00\01\20\00\6a"
  "\0b\88\80\80\80\00\00\20\00\20\00\01\6a\0b\8c\80"
  "\80\80\00\00\01\20\00\01\01\20\00\01\01\6a\0b\86"
  "\80\80\80\00\00\20\00\01\45\0b\89\80\80\80\00\00"
  "\01\01\20\00\01\01\45\0b\88\80\80\80\00\00\20\00"
  "\01\20\00\47\0b\88\80\80\80\00\00\20\00\20\00\01"
  "\49\0b\8c\80\80\80\00\00\01\20\00\01\01\20\00\01"
  "\01\4c\0b\87\80\80\80\00\00\20\00\01\40\00\0b\8a"
  "\80\80\80\00\00\01\01\20\00\01\01\40\00\0b"
)
(assert_return (invoke "as-func-first") (i32.const 1))
(assert_return (invoke "as-func-mid") (i32.const 2))
(assert_return (invoke "as-func-last") (i32.const 3))
(assert_return (invoke "as-func-everywhere") (i32.const 4))
(assert_return (invoke "as-drop-last" (i32.const 0)))
(assert_return (invoke "as-drop-everywhere" (i32.const 0)))
(assert_return (invoke "as-select-mid1" (i32.const 3)) (i32.const 3))
(assert_return (invoke "as-select-mid2" (i32.const 3)) (i32.const 3))
(assert_return (invoke "as-select-last" (i32.const 3)) (i32.const 3))
(assert_return (invoke "as-select-everywhere" (i32.const 3)) (i32.const 3))
(assert_return (invoke "as-block-first") (i32.const 2))
(assert_return (invoke "as-block-mid") (i32.const 2))
(assert_return (invoke "as-block-last") (i32.const 3))
(assert_return (invoke "as-block-everywhere") (i32.const 4))
(assert_return (invoke "as-loop-first") (i32.const 2))
(assert_return (invoke "as-loop-mid") (i32.const 2))
(assert_return (invoke "as-loop-last") (i32.const 3))
(assert_return (invoke "as-loop-everywhere") (i32.const 4))
(assert_return (invoke "as-if-condition" (i32.const 0)))
(assert_return (invoke "as-if-condition" (i32.const -1)))
(assert_return (invoke "as-if-then" (i32.const 0)))
(assert_return (invoke "as-if-then" (i32.const 4)))
(assert_return (invoke "as-if-else" (i32.const 0)))
(assert_return (invoke "as-if-else" (i32.const 3)))
(assert_return (invoke "as-br-last" (i32.const 6)) (i32.const 6))
(assert_return (invoke "as-br-everywhere" (i32.const 7)) (i32.const 7))
(assert_return (invoke "as-br_if-mid" (i32.const 5)) (i32.const 5))
(assert_return (invoke "as-br_if-last" (i32.const 6)) (i32.const 6))
(assert_return (invoke "as-br_if-everywhere" (i32.const 7)) (i32.const 7))
(assert_return (invoke "as-br_table-mid" (i32.const 5)) (i32.const 5))
(assert_return (invoke "as-br_table-last" (i32.const 6)) (i32.const 6))
(assert_return (invoke "as-br_table-everywhere" (i32.const 7)) (i32.const 7))
(assert_return (invoke "as-return-last" (i32.const 6)) (i32.const 6))
(assert_return (invoke "as-return-everywhere" (i32.const 7)) (i32.const 7))
(assert_return
  (invoke "as-call-mid1" (i32.const 3) (i32.const 1) (i32.const 2))
  (i32.const 2)
)
(assert_return
  (invoke "as-call-mid2" (i32.const 0) (i32.const 3) (i32.const 1))
  (i32.const 2)
)
(assert_return
  (invoke "as-call-last" (i32.const 10) (i32.const 9) (i32.const -1))
  (i32.const 20)
)
(assert_return
  (invoke "as-call-everywhere" (i32.const 2) (i32.const 1) (i32.const 5))
  (i32.const -2)
)
(assert_return (invoke "as-unary-last" (i32.const 30)) (i32.const 1))
(assert_return (invoke "as-unary-everywhere" (i32.const 12)) (i32.const 2))
(assert_return (invoke "as-binary-mid" (i32.const 3)) (i32.const 6))
(assert_return (invoke "as-binary-last" (i32.const 3)) (i32.const 6))
(assert_return (invoke "as-binary-everywhere" (i32.const 3)) (i32.const 6))
(assert_return (invoke "as-test-last" (i32.const 0)) (i32.const 1))
(assert_return (invoke "as-test-everywhere" (i32.const 0)) (i32.const 1))
(assert_return (invoke "as-compare-mid" (i32.const 3)) (i32.const 0))
(assert_return (invoke "as-compare-last" (i32.const 3)) (i32.const 0))
(assert_return (invoke "as-compare-everywhere" (i32.const 3)) (i32.const 1))
(assert_return (invoke "as-grow_memory-last" (i32.const 2)) (i32.const 1))
(assert_return
  (invoke "as-grow_memory-everywhere" (i32.const 12))
  (i32.const 3)
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7f\03\82\80\80\80\00\01\00\0a\89\80\80\80"
    "\00\01\83\80\80\80\00\00\01\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7e\03\82\80\80\80\00\01\00\0a\89\80\80\80"
    "\00\01\83\80\80\80\00\00\01\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7d\03\82\80\80\80\00\01\00\0a\89\80\80\80"
    "\00\01\83\80\80\80\00\00\01\0b"
  )
  "type mismatch"
)
(assert_invalid
  (module binary
    "\00\61\73\6d\01\00\00\00\01\85\80\80\80\00\01\60"
    "\00\01\7c\03\82\80\80\80\00\01\00\0a\89\80\80\80"
    "\00\01\83\80\80\80\00\00\01\0b"
  )
  "type mismatch"
)
